/**
 * 日期工具函数
 */

/**
 * 格式化日期为 YYYY-MM-DD 格式
 * @param {Date} date - 日期对象
 * @returns {string} 格式化后的日期字符串
 */
export function formatDate(date) {
  if (!date) return ''
  
  const d = new Date(date)
  const year = d.getFullYear()
  const month = String(d.getMonth() + 1).padStart(2, '0')
  const day = String(d.getDate()).padStart(2, '0')
  
  return `${year}-${month}-${day}`
}

/**
 * 获取指定天数前的日期
 * @param {number} days - 天数
 * @returns {string} 格式化后的日期字符串
 */
export function getDaysAgo(days) {
  const date = new Date()
  date.setDate(date.getDate() - days)
  return formatDate(date)
}

/**
 * 获取今天的日期
 * @returns {string} 格式化后的日期字符串
 */
export function getToday() {
  return formatDate(new Date())
}

/**
 * 验证日期格式是否正确
 * @param {string} dateString - 日期字符串
 * @returns {boolean} 是否为有效日期
 */
export function isValidDate(dateString) {
  if (!dateString) return false
  
  const regex = /^\d{4}-\d{2}-\d{2}$/
  if (!regex.test(dateString)) return false
  
  const date = new Date(dateString)
  return date instanceof Date && !isNaN(date)
}

/**
 * 比较两个日期的大小
 * @param {string} date1 - 日期1
 * @param {string} date2 - 日期2
 * @returns {number} -1: date1 < date2, 0: date1 = date2, 1: date1 > date2
 */
export function compareDates(date1, date2) {
  const d1 = new Date(date1)
  const d2 = new Date(date2)
  
  if (d1 < d2) return -1
  if (d1 > d2) return 1
  return 0
}